iT邦幫忙

2026 iThome 鐵人賽

DAY 7
0
Software Development

Android 工具箱開發系列 第 7 篇

Day 7 終於打開 Android Studio

  • 分享至 

  • xImage
  •  

前六天都在講原理
今天終於要寫程式了,再不開 Android Studio,我都快以為這是 ADB 專欄

建立一個 Empty Activity:

  • Kotlin
  • Jetpack Compose
  • 套件名稱 com.tony.toolbox
  • minSdk 26

選 26 是因為之後會用到有 timeout 的 Process.waitFor()
而且再往下支援,寫相容程式的時間可能比使用者人數還多

先裝需要的東西

在 version catalog 加入 Compose、Material 3 和 Shizuku:

[libraries]
shizuku-api = { group = "dev.rikka.shizuku", name = "api", version.ref = "shizuku" }
shizuku-provider = { group = "dev.rikka.shizuku", name = "provider", version.ref = "shizuku" }

接著在 app/build.gradle.kts 打開:

buildFeatures {
    compose = true
    buildConfig = true
    aidl = true
}

aidl = true 很容易漏掉
漏掉後 Gradle 不一定罵你,只會假裝沒看到檔案,讓你開始懷疑自己

然後 Sync 就炸了

AGP 9 的內建 Kotlin 跟原本的 Kotlin plugin 撞在一起
Android 開發的傳統藝能:程式一行都沒寫,建置先壞掉

最後在 gradle.properties 加上:

android.builtInKotlin=false
android.newDsl=false

重新 Sync,世界暫時恢復和平

目錄先分好

com.tony.toolbox
├── shizuku/
├── data/
├── ui/
└── feature/

Shizuku 相關操作全部放進 shizuku/
不要每個功能都自己呼叫 API,不然未來改一次底層,全專案會陪你一起加班

Application 先放個空殼:

class ToolboxApp : Application() {
    lateinit var container: AppContainer
        private set

    override fun onCreate() {
        super.onCreate()
        container = AppContainer(this)
    }
}

這個專案先不用 Hilt,手寫 AppContainer 就好
規模還沒大到需要請一台挖土機來種盆栽

最後按下 Run,看到 Hello Android

看起來像什麼都沒做
但至少它能編譯、能安裝、沒有爆炸

明天讓它跟 Shizuku 講第一句話


上一篇
Day 6 Shizuku 怎麼讓電腦下班
下一篇
Day 8 把 Shizuku 接進專案
系列文
Android 工具箱開發 共 9 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言